package entity;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
public class Venda {
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column
	private Integer idVenda;
	@Column
	@Temporal(TemporalType.DATE)
	private Date dataVenda;
	@OneToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="vendas")
	private Cliente cliente;
	@ManyToMany(fetch=FetchType.LAZY)
	@JoinTable(name="VendaProduto", 
					joinColumns={@JoinColumn(name="idProduto")}, 
					inverseJoinColumns={@JoinColumn(name="idVenda")})
	private List<Produto> produtos;
	
	public Venda(Integer idVenda, Date dataVenda) {
		super();
		this.idVenda = idVenda;
		this.dataVenda = dataVenda;
	}
	public Venda() {
		super();
	}
	
	public List<Produto> getProdutos() {
		return produtos;
	}
	public void setProdutos(List<Produto> produtos) {
		this.produtos = produtos;
	}
	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	public Integer getIdVenda() {
		return idVenda;
	}
	public void setIdVenda(Integer idVenda) {
		this.idVenda = idVenda;
	}
	public Date getDataVenda() {
		return dataVenda;
	}
	public void setDataVenda(Date dataVenda) {
		this.dataVenda = dataVenda;
	}
	@Override
	public String toString() {
		return "Venda [idVenda=" + idVenda + ", dataVenda=" + dataVenda + "]";
	}
	
	

}
